#!/bin/bash

# 快速单元测试脚本 - 仅测试核心功能

set -e

echo "🚀 快速功能测试"
echo "==============="

# 清理之前的进程
pkill -f "node_server" 2>/dev/null || true  
pkill -f "node_agent" 2>/dev/null || true
sleep 2

# 编译项目
echo "1. 编译项目..."
cargo build --release

# 确保基础设施运行
echo "2. 启动基础设施..."
cd deploy
# 检查 PostgreSQL 是否有数据卷冲突
if docker compose ps -q postgresql | xargs -r docker inspect -f '{{.State.Status}}' | grep -q restarting; then
    echo "⚠️  检测到 PostgreSQL 重启循环，正在重置数据卷..."
    docker compose down
    docker volume rm deploy_postgres_data 2>/dev/null || true
fi
docker compose up -d
cd ..
sleep 5

# 启动server
echo "3. 启动server..."
nohup ./target/release/node_server start > quick_server.log 2>&1 &
SERVER_PID=$!
sleep 3

# 启动一个agent
echo "4. 启动agent..."
nohup ./target/release/node_agent --groups web --token secure_token_123 > quick_agent.log 2>&1 &
AGENT_PID=$!
sleep 3

# 测试基本功能
echo "5. 测试hostname命令..."
timeout 10s ./target/release/node_server command get-hostname

echo "6. 测试脚本执行..."  
timeout 10s ./target/release/node_server command run-script --script "echo 'Test successful'; date" --timeout 5

echo "✅ 快速测试完成！"

# 清理进程和临时文件
cleanup() {
    echo "🧹 清理测试环境..."
    # 清理进程
    kill $SERVER_PID $AGENT_PID 2>/dev/null || true
    pkill -f "node_server" 2>/dev/null || true  
    pkill -f "node_agent" 2>/dev/null || true
    
    # 清理临时日志文件
    rm -f quick_server.log quick_agent.log
    
    echo "✅ 清理完成"
}

cleanup
